Skip to content

finagin/encyclopedia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Бписок ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄

Linux

Π’Ρ‹Π²ΠΎΠ΄ вСрсии дистрибутива

lsb_release -a

Back to top


Π”Π΅Ρ€Π΅Π²ΠΎ процСссов

ps -e -o pid,args --forest

Back to top


Поиск процСсса Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΡ€Ρ‚

netstat -vanp tcp | grep 8000

Back to top


Π€ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ процСсс

{command} > {process_log_file | /dev/null} 2>&1 &

Back to top


Π Π°Π±ΠΎΡ‚Π° с Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌΠΈ процСссами

Ctrl + Z - ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ ΡΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ

Бписок Π·Π°Π΄Π°Ρ‡

jobs

ВывСсти Π·Π°Π΄Π°Ρ‡Ρƒ Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π½ΠΈΠΉ ΠΏΠ»Π°Π½

fg {group}

Π£Π±Ρ€Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ Π½Π° Π·Π°Π΄Π½ΠΈΠΉ ΠΏΠ»Π°Π½

bg {group}

Back to top


Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ для ${USERNAME} возмоТности Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ sudo

sudo usermod -a -G sudo ${USERNAME}

Back to top


Π‘ΠΌΠ΅Π½Π° Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° Π½Π° user2 Ρƒ Ρ„Π°ΠΉΠ»ΠΎΠ² с Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ user1

find ./ -user user1 -exec chown user2 {} +

Back to top


Π‘ΠΌΠ΅Π½Π° Π³Ρ€ΡƒΠΏΠΏΡ‹ Π½Π° user2 Ρƒ Ρ„Π°ΠΉΠ»ΠΎΠ² с Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ user1

find ./ -group group1 -exec chown :group2 {} +

Back to top


Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° поиска DNS

dig {domain} [any | A | MX | TXT | NS | SOA]

Back to top


ΠŸΠΎΡ€Ρ‚Ρ‹

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°

ss -nap | grep :{port}
# for mac:
lsof -n -i:{port} | grep LISTEN

Back to top


ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅

iptables -I INPUT -p tcp -m tcp --dport 53 -j ACCEPT

Back to top


Бтандартная HTTP авторизация

htpasswd -c {filename} {username}

e.g.

htpasswd -c .htpasswd finagin

Back to top


Vim

Runtime ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΡŽ строк

:set nu

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ

:e ++enc=cp1251

Back to top


ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Vim

~/.vimrc
" Configuration file for vim
set modelines=0		" CVE-2007-2438

" Normally we use vim-extensions. If you want true vi-compatibility
" remove change the following statements
set nocompatible	" Use Vim defaults instead of 100% vi compatibility
set backspace=2		" more powerful backspacing
set clipboard=unnamedplus
" Don't write backup file if vim is being called by "crontab -e"
au BufWrite /private/tmp/crontab.* set nowritebackup nobackup
" Don't write backup file if vim is being called by "chpass"
au BufWrite /private/etc/pw.* set nowritebackup nobackup

let skip_defaults_vim=1

" Use the Solarized Dark theme
set background=dark
set encoding=utf-8 nobomb

" Centralize backups, swapfiles and undo history
set backupdir=~/.vim/backups
set directory=~/.vim/swaps
if exists("&undodir")
	set undodir=~/.vim/undo
endif

" Don’t create backups when editing files in certain directories
set backupskip=/tmp/*,/private/tmp/*

" Enable line numbers
set number

" Enable syntax highlighting
syntax on

" Highlight current line
set cursorline

" Make tabs as wide as two spaces
set tabstop=2

" Show β€œinvisible” characters
"set lcs=tab:~,trail:Β·,nbsp:_
"set list

" Highlight searches
set hlsearch

" Highlight dynamically as pattern is typed
set incsearch

" Enable mouse in all modes
set mouse=a

" Show the cursor position
set ruler

" Show the current mode
set showmode

" Show the filename in the window titlebar
set title

" Show the (partial) command as it’s being typed
set showcmd

Back to top


SSH

ГСнСрация SSH ΠΊΠ»ΡŽΡ‡Π΅ΠΉ

ssh-keygen -t {type} -b {bits} -C {comment} -f {file_name}

e.g.

ssh-keygen -t rsa -b 16384 -C "baby@ovh.ft-ru.ru" -f ~/.ssh/baby

Back to top


ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» SSH

~/.ssh/config
Host *
    UseKeychain     yes

Include config.d/*
~/.ssh/config.d/VCS
# Custom ssh key for bitbucket
Hostbitbucket.org
	Hostname	bitbucket.org
	IdentityFile	~/.ssh/no_pass

# Custom ssh key for bitbucket
Host github.com
	Hostname	github.com
	IdentityFile	~/.ssh/id_rsa
~/.ssh/config.d/Projects
Host application-load-balancer
	Horstname	192.168.0.10
	IdentityFile	~/.ssh/secure
Host application-web-1
	Horstname	192.168.0.30
	IdentityFile	~/.ssh/no_pass
	ProxyJump	application-load-balancer
Host application-web-2
	Horstname	192.168.0.31
	IdentityFile	~/.ssh/no_pass
	ProxyJump	application-load-balancer
Host application-database
	Horstname	192.168.0.20
	IdentityFile	~/.ssh/no_pass
	ProxyJump	application-load-balancer

Back to top


SSH Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ

ssh -L 8080:localhost:80 192.168.0.10

more information ↑

Back to top


Easy SOCKS Proxy

ssh -D 12345 {user}@{host}

Network Settings

Back to top


macOS X

Mac OS Programms

  • Etcher by resin.io -- создаСни Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠΉ USB

Back to top


Dock separator

defaults write com.apple.dock persistent-apps -array-add '{tile-data={}; tile-type="spacer-tile";}';
killall Dock;

Back to top


Nginx

ΠŸΡ€ΠΎΠΊΠΈΠ΄ΠΊΠ° ссылок Π½Π° Ρ„Π°ΠΉΠ»Ρ‹ со staging'Π° Π½Π° production

server {
    ...
    location ~* \.(jpg|jpeg|gif|png)$ {
        if (!-f $request_filename) {
            rewrite ^/images/(.*) http://example.com/images/$1 break;
         }
    }
    ...
}

Back to top


Database

MySQL

Database dump (MySQL)

mysqldump -u {username} -p {database_name} [--tables {table}] [--where="{query}"] > {outputfile}

e.g.

mysqldump -u utalents-test -p utalents-test > "utalents-test_(date +"%Y-%m-%d_%H-%M-%S").sql"

Back to top


Π—Π°ΠΏΠΈΡΡŒ Π² Π‘Π” ΠΈΠ· Ρ„Π°ΠΉΠ»Π° (MySQL)

mysql -u {username} -p {database_name} < {inputfile}

Back to top


PostgreSQL

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π‘Π”

psql postgres
CREATE DATABASE {db_name};
CREATE USER {user_name} WITH password '{password}';
GRANT ALL ON DATABASE {db_name} TO {user_name};

Back to top


Database dump (PostgreSQL)

pg_dump -U {username} {database_name} > {outputfile}

Back to top


Π—Π°ΠΏΠΈΡΡŒ Π² Π‘Π” ΠΈΠ· Ρ„Π°ΠΉΠ»Π° (PostgreSQL)

psql -U {username} {database_name} < {inputfile}

Back to top


ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ссылок Π½Π° ΠΏΠΎΠ»Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (PostgreSQL)

SQL
SELECT
  tc.table_name
  , kcu.column_name
  , tc.table_schema
  , ccu.table_schema AS foreign_table_schema
  , ccu.table_name   AS foreign_table_name
  , ccu.column_name  AS foreign_column_name
  , rk.delete_rule   AS on_delete --strategy
  , tc.constraint_name
FROM
  information_schema.table_constraints AS tc
  JOIN information_schema.key_column_usage AS kcu
    ON kcu.constraint_name = tc.constraint_name
       AND kcu.constraint_schema = tc.constraint_schema
  JOIN information_schema.constraint_column_usage AS ccu
    ON ccu.constraint_name = tc.constraint_name
       AND ccu.constraint_schema = tc.constraint_schema
  JOIN information_schema.referential_constraints AS rk
    ON rk.constraint_name = tc.constraint_name
       AND rk.constraint_schema = tc.constraint_schema
WHERE
  tc.constraint_type = 'FOREIGN KEY'
  AND ccu.table_name = 'resolution_to'  -- Π’Π°Π±Π»ΠΈΡ†Π°
  AND ccu.column_name = 'id'            -- ПолС
;

Back to top


Поиск Π·Π°Π»ΠΎΡ‡Π΅Π½Π½Ρ‹Ρ… процСссов

SELECT pgsa.pid, pgsa.*
FROM pg_stat_activity AS pgsa
WHERE pgsa.wait_event_type = 'Lock';

Back to top


Π”ΠΎΠ»Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ запросы

SELECT pgsa.pid,
       now() - pgsa.query_start AS duration,
       pgsa.query,
       pgsa.state
FROM pg_stat_activity AS pgsa
WHERE (now() - pgsa.query_start) > INTERVAL '5 minutes';

Back to top


Убийство процСсса ΠΏΠΎ pid

SELECT pg_terminate_backend(pid);

Back to top


Python

Virtualenv

Install virtualenv

sudo pip install virtualenv

Back to top


Create virtualenv

virtualenv --no-site-packages --prompt="({project_name})" {venv_name}

Back to top


Activate virtualenv

source {path_to_project}/{venv_name}/bin/activate

Back to top


Git

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ алиаса для Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π΅Ρ€Π΅Π²Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

git config --global alias.tree "log --oneline --decorate --all --graph"

Usage:

git tree

Back to top


Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

git clean -Xdfe .idea # -e .idea β€” ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ .idea

Back to top


ΠžΡ‚ΠΊΠ°Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅

git reset --hard {commit}
git push --force

Back to top


Patch ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

git diff {older_commit}..{younger_commit} > my-patch.patch

e.g.

git diff HEAD~2..HEAD > my-patch.patch

or

git diff bea1ccb..b028577 > my-patch.patch

Back to top


ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ

git branch -m {old_branch} {new_branch}         # Rename branch locally    
git push origin :{old_branch}                   # Delete the old branch    
git push --set-upstream origin {new_branch}     # Push the new branch, set local branch to track the new remote

Back to top


Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ

git push origin --delete {branch_name}      # Remove branch remotely
git branch -d {branch_name}                 # Remove branch locally

Back to top


ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π΅Π³Π°

git tag {new_tag} {old_tag}                 # Copy tag with new name   
git tag -d {old_tag}                        # Remove tag locally
git push origin :refs/tags/{old_tag}        # Remove tag remotely
git push --tags                             # Push new tag remotely

Back to top


ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ

git clone -b '{branch}' --single-branch {repo} {dir}
git clone -b 'v1.2.1' --single-branch --depth 1 https://github.com/finagin/Gulpfile.js.git v1.2.1

Back to top


ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сабмодулСй

Π’ вСрсии 1.9 ΠΈ Π²Ρ‹ΡˆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ нСсколько сабмодулСй ΠΏΠ°Ρ€Π°Π»Π΅Π»ΡŒΠ½ΠΎ:

git clone --recursive -j8 git://github.com/foo/bar.git

Π’ вСрсии 1.6.5 ΠΈ Π²Ρ‹ΡˆΠ΅:

git clone --recursive git://github.com/foo/bar.git

Для ΡƒΠΆΠ΅ склонированного Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… вСрсий Git, Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

git clone git://github.com/foo/bar.git
cd bar
git submodule update --init --recursive

Back to top


УдалСниС из индСкса

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°

git rm --cached {file_name}

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ

git rm --cached -r {directory_name}

Back to top


ПоддСлка Π΄Π°Ρ‚Ρ‹ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

git filter-branch --env-filter \
    'if [ $GIT_COMMIT = 119f9ecf58069b265ab22f1f97d2b648faf932e0 ]
     then
         export GIT_AUTHOR_DATE="Mon Feb 20 15:36:17 2017 +0300"
         export GIT_COMMITTER_DATE="Mon Feb 20 15:36:41 2017 +0300"
     fi'

Back to top


ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ "Initial commit"

git update-ref -d HEAD

Back to top


Git Flow

git-flow ↑

Back to top


About

πŸ“š Encyclopedia

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages